﻿using System;
using System.Runtime.Serialization;

namespace Bookvar.ObjectModel.Actions.Collaboration
{
    [DataContract]
    [Serializable]
    [KnownType( typeof ( ChangeTopicNameAction ) )]
    [KnownType( typeof ( AddTopicAction ) )]
    [KnownType( typeof ( RemoveTopicAction ) )]
    [KnownType( typeof ( SayAction ) )]
    [KnownType( typeof ( AddFloatingTopicsAction ) )]
    public abstract class ActionBase
    {
        private Guid publisherGuid;

        [DataMember]
        public Guid PublisherGuid
        {
            get { return publisherGuid; }
            set { publisherGuid = value; }
        }

        public abstract void Execute( IExecutionContext context );
    }
}